home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / fractal / kaos.lha / modellib / kotorusmap_def.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-01-16  |  1.4 KB  |  71 lines

  1. int kotorusmap_init()
  2. {
  3.     title_label = "Kim-Ostlund Torus Map";
  4.     mapping_on = 1;
  5.     inverse_on = 0;
  6.     fderiv_on = 0;
  7.     enable_polar = 0;
  8.     enable_period = 1;
  9.     
  10.     var_dim = 2;
  11.     param_dim = 4;
  12.     func_dim = 2;
  13.  
  14.     (void) malloc_init();
  15.  
  16.     period_len[0] = 1;
  17.     period_len[1] = 1;
  18.     var_label[0] = "x";
  19.     var_label[1] = "y";
  20.     param_label[0] = "wx";
  21.     param_label[1] = "wy";
  22.     param_label[2] = "a";
  23.     param_label[3] = "asymm";
  24.     func_label[0] = "rhox";
  25.     func_label[1] = "rhoy";
  26.  
  27.     param[0] = 0.6;
  28.     param[1] = 0.805;
  29.     param[2] = 0.7;
  30.     param[3] = 1;
  31.     var_i[0] = 0;
  32.     var_i[1] = 0;
  33.  
  34.     param_min[0]= 0; param_max[0]= 1;
  35.     param_min[1]= 0; param_max[1]= 1;
  36.     param_min[2]= 0; param_max[2]= 2;
  37.     param_min[3]= 0; param_max[3]= 2;
  38.     var_min[0]= 0; var_max[0]= 1;
  39.     var_min[1]= 0; var_max[1]= 1;
  40.     func_min[0]= -1; func_max[0]= 1;
  41.     func_min[1]= -1; func_max[1]= 1;
  42.  
  43.     f_p = kotorusmap_f;
  44.     func_p = kotorusmap_func;
  45. }
  46. /* Kim-Ostlund strongly coupled torus map */
  47. int kotorusmap_f(f,index,x,p,t,dim)
  48. int index,dim;
  49. double f[],x[],p[],t;
  50. {
  51.     /* forward map */
  52.     if(index ==1) {
  53.         f[0] = x[0] + p[0] - p[2] * p[3] / twopi * sin(twopi * x[1]);
  54.         f[1] = x[1] + p[1] - p[2] / p[3] / twopi * sin(twopi * x[0]);
  55.     }
  56.     /* inverse map not defined */
  57. }
  58. int kotorusmap_func(f,x,p,t,dim)
  59. double f[],x[],p[],t;
  60. int dim;
  61. {
  62.     int i;
  63.     extern int forward_toggle;
  64.     extern double *v;
  65.     extern int (*f_p)();
  66.     
  67.     (int) f_p(v,forward_toggle,x,p,t,dim);
  68.     f[0] = v[0]-x[0]-p[0];
  69.     f[1] = v[1]-x[1]-p[1];
  70. }
  71.